package club.xiaojiawei.strings;

import java.util.Arrays;

/**
 * @author 肖嘉威
 * @version 1.0
 * @date 4/30/22 9:44 PM
 * @question 344.反转字符串
 * @description 编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
 * 不要给另外的数组分配额外的空间，你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
 */
public class ReverseString344 {

    public static void main(String[] args) {
        char[] s = {'h', 'e', 'l', 'l', 'o'};
        reverseString(s);
        System.out.println(Arrays.toString(s));
    }

    /**
     * 双指针-首尾交换
     * @param s
     */
    public static void reverseString(char[] s) {
        int length = s.length;
        char temp;
        for (int i = 0; i < (length >> 1); i++) {
            temp = s[i];
            s[i] = s[length - i - 1];
            s[length - i - 1] = temp;
        }
    }
}
